//package com.fire.web.modules.sys.controller;
//
//import com.baomidou.mybatisplus.plugins.Page;
//import com.fire.common.http.Response;
//import com.fire.common.mvc.annotation.ViewPrefix;
//import com.fire.common.mvc.controller.BaseBeanController;
//import com.fire.common.mybatis.mvc.wrapper.EntityWrapper;
//import com.fire.common.utils.FastJsonUtils;
//import com.fire.common.utils.StringUtils;
//import com.fire.web.aspectj.annotation.Log;
//import com.fire.web.aspectj.enums.LogType;
//import com.fire.web.modules.sys.entity.Menu;
//import com.fire.web.modules.sys.entity.Role;
//import com.fire.web.modules.sys.service.IMenuService;
//import com.fire.web.modules.sys.service.IRoleMenuService;
//import com.fire.web.modules.sys.service.IRoleService;
//import com.fire.web.utils.MenuTreeHelper;
//import com.fire.web.utils.PageRequest;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.validation.BindingResult;
//import org.springframework.web.bind.annotation.*;
//
//import javax.servlet.http.HttpServletRequest;
//import java.io.IOException;
//import java.util.List;
//
//
///**
// *
// *
// * @package com.fire.web.modules.sys.controller
// * @title: 消息模版控制器
// * @description: 消息模版控制器
// */
//
//@RestController
//@RequestMapping("/site")
//@ViewPrefix("modules/sys/role")
////@RequiresPathMenu("sys:role")
//@Log(title = "角色管理")
//public class SiteController extends BaseBeanController<Role> {
//
//	@Autowired
//	private IRoleService roleService;
//	@Autowired
//	private IMenuService menuService;
//	@Autowired
//	private IRoleMenuService roleMenuService;
//
//	/**
//	 * 根据页码和每页记录数，以及查询条件动态加载数据
//	 *
//	 * @param request
//	 * @throws IOException
//	 */
//	@GetMapping(value = "list")
//	@Log(logType = LogType.SELECT)
//	//@RequiresMethodMenus("list")
//	public void list( HttpServletRequest request) throws IOException {
//		//加入条件
//		EntityWrapper<Role> entityWrapper = new EntityWrapper<>(Role.class);
//		entityWrapper.orderBy("createDate",false);
//		String code= request.getParameter("code");
//		if (!StringUtils.isEmpty(code)){
//			entityWrapper.like("code",code);
//		}
//		String name=request.getParameter("name");
//		if (!StringUtils.isEmpty(name)){
//			entityWrapper.like("name",name);
//		}
//		// 预处理
//		Page pageBean = roleService.selectPage(PageRequest.getPage(),entityWrapper);
//		FastJsonUtils.print(pageBean,Role.class,"id,name,code,isSys,usable");
//	}
//
//	/**
//	 * 获取可用的用户列表
//	 *
//	 * @throws IOException
//	 */
//	@GetMapping(value = "usable/list")
//	public List<Role> usableLst() throws IOException {
//		EntityWrapper<Role> entityWrapper = new EntityWrapper<Role>(Role.class);
//		entityWrapper.orderBy("createDate",false);
//		List<Role> usableLst = roleService.selectList(entityWrapper);
//		return usableLst;
//	}
//
//	@PostMapping("add")
//	@Log(logType = LogType.INSERT)
//	//@RequiresMethodMenus("add")
//	public Response add(Role entity, BindingResult result) {
//		// 验证错误
//		this.checkError(entity,result);
//		roleService.insert(entity);
//		return Response.ok("添加成功");
//	}
//
//	@PostMapping("{id}/update")
//	@Log(logType = LogType.UPDATE)
//	//@RequiresMethodMenus("update")
//	public Response update(Role entity, BindingResult result) {
//		// 验证错误
//		this.checkError(entity,result);
//		roleService.insertOrUpdate(entity);
//		return Response.ok("更新成功");
//	}
//
//	@PostMapping("{id}/delete")
//	@Log(logType = LogType.DELETE)
//	//@RequiresMethodMenus("delete")
//	public Response delete(@PathVariable("id") String id) {
//		roleService.deleteById(id);
//		return Response.ok("删除成功");
//	}
//
//	@PostMapping("batch/delete")
//	@Log(logType = LogType.DELETE)
//	//@RequiresMethodMenus("delete")
//	public Response batchDelete(@RequestParam("ids") String[] ids) {
//		List<String> idList = java.util.Arrays.asList(ids);
//		roleService.deleteBatchIds(idList);
//		return Response.ok("删除成功");
//	}
//
//	/**
//	 * 获得菜单列表
//	 *
//	 * @throws IOException
//	 */
//	@GetMapping(value = "getSiteMenus")
//	public void getMenus(){
//		List<Menu> treeNodeList = menuService.selectTreeList(new EntityWrapper<Menu>().eq("t.independency","site"));
//		List<MenuTreeHelper.MenuTreeNode> menuTreeNodes = MenuTreeHelper.create().sort(treeNodeList);
//		FastJsonUtils.print(menuTreeNodes);
//	}
//}